#include <iostream>
using namespace std;

class A
{
	public :
		int a;
};

class B : virtual public A
{
	public :
		int b;
};

class C : virtual public A
{
	public :
		int c;
};

class D : public B, public C
{
	public ://两个指针，四个变量
		int d;
};

int main()
{
	cout << sizeof(A) << endl;
	cout << sizeof(B) << endl;
	cout << sizeof(C) << endl;
	cout << sizeof(D) << endl;

	D d;
	B *pb = &d;
	pb->a;//D中有个指针vpb，g++先取得vpb(vpb中储存pb偏移a的距离)，pb+vpb=&a（a的地址）
	d.a;
}
